Einführung in Machine Learning mit Python by Andreas C. Müller Sarah Guido

Einführung in Machine Learning mit Python by Andreas C. Müller Sarah Guido

Autor:Andreas C. Müller, Sarah Guido
Die sprache: deu
Format: epub
Herausgeber: dpunkt
veröffentlicht: 2017-11-15T00:00:00+00:00


Abbildung 3-42: Von DBSCAN mit eps=7 gefundene Cluster

In[76]:

dbscan = DBSCAN(min_samples=3, eps=7)

labels = dbscan.fit_predict(X_pca)

for cluster in range(max(labels) + 1):

mask = labels == cluster

n_images = np.sum(mask)

fig, axes = plt.subplots(1, n_images, figsize=(n_images * 1.5, 4),

subplot_kw= )

for image, label, ax in zip(X_people[mask], y_people[mask], axes):

ax.imshow(image.reshape(image_shape), vmin=0, vmax=1)

ax.set_title(people.target_names[label].split()[-1])

Einige der Cluster entsprechen Personen mit sehr charakteristischen Gesichtern (innerhalb dieses Datensatzes), z. B. Sharon oder Koizumi. Innerhalb eines Clusters sind die Blickrichtung und der Gesichtsausdruck in etwa gleich. Einige Cluster enthalten Bilder von mehreren Personen, aber mit ähnlicher Ausrichtung und Gesichtsausdruck.

Damit beenden wir unsere Analyse des DBSCAN-Algorithmus auf dem GesichterDatensatz. Wie Sie sehen können, führen wir eine Untersuchung von Hand durch, im Gegensatz zur automatischen Suche beim überwachten Lernen mit R2-Score oder Genauigkeit.

Fahren wir mit der Anwendung von k-Means und agglomerativem Clustering fort.

Analyse des Gesichter-Datensatzes mit k-Means. Wir haben gesehen, dass DBSCAN nicht mehr als einen großen Cluster erzeugen konnte. Agglomeratives Clustering und k-Means sind eher prädestiniert, gleich große Cluster zu generieren. Allerdings müssen wir die gewünschte Anzahl Cluster festlegen. Wir könnten die Anzahl Personen im Datensatz als Clusteranzahl festlegen. Es ist aber unwahrscheinlich, dass ein unüberwachter Clustering-Algorithmus diese auch findet. Stattdessen beginnen wir mit einer geringen Anzahl Cluster, z. B. zehn, wodurch wir uns jeden der Cluster genau ansehen können:

In[77]:

# extrahiere Cluster mit k-Means

km = KMeans(n_clusters=10, random_state=0)

labels_km = km.fit_predict(X_pca)

print("Cluster-Größen mit k-Means: ".format(np.bincount(labels_km)))



Download



Haftungsausschluss:
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur                                                  Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.